package com.zenithmind.article.service;

import com.zenithmind.article.pojo.vo.ArticleVO;
import com.zenithmind.article.pojo.vo.AuthorVO;

import java.util.List;

/**
 * 文章查询服务接口
 * 遵循接口隔离原则：专门处理查询相关操作
 * 遵循单一职责原则：只负责各种查询统计功能
 */
public interface ArticleQueryService {

    /**
     * 获取热门文章
     * 
     * @return 热门文章列表
     */
    List<ArticleVO> getHotArticles();

    /**
     * 获取博客页面热门文章
     * 
     * @param limit 返回数量限制
     * @return 热门文章列表
     */
    List<ArticleVO> getBlogHotArticles(Integer limit);

    /**
     * 获取活跃作者
     * 
     * @param limit 返回数量限制
     * @return 活跃作者列表
     */
    List<AuthorVO> getActiveAuthors(Integer limit);

    /**
     * 获取文章归档
     * 
     * @return 文章归档列表
     */
    List<ArticleVO> getArticleArchives();

    /**
     * 获取相关文章
     * 
     * @param articleId 文章ID
     * @return 相关文章列表
     */
    List<ArticleVO> getRelatedArticles(String articleId);

    /**
     * 获取推荐文章
     * 
     * @param limit 返回数量限制
     * @return 推荐文章列表
     */
    List<ArticleVO> getRecommendedArticles(Integer limit);

    /**
     * 获取最新文章
     * 
     * @param limit 返回数量限制
     * @return 最新文章列表
     */
    List<ArticleVO> getLatestArticles(Integer limit);
}
